Cytosim  PI
Cytoskeleton Simulator
FiberBinder Class Reference

Detailed Description

A FiberBinder has a pointer to a Fiber, which is:

  • zero if the Binder is not attached,
  • the corresponding Fiber when the Binder is attached.

When the FiberBinder is attached, its location on the Fiber is stored as a curvilinear abscissa (fbAbs) taken along the fiber, from a fixed reference on the fiber. The abscissa is independent from the Fiber's model points.

Inheritance diagram for FiberBinder:
Node Hand Actor Cutter Mighty Motor Nucleator Rescuer Slider Tracker

Public Member Functions

 FiberBinder ()
 construct as unattached
 
 FiberBinder (Fiber *f, real a)
 construct at the given distance from the origin
 
void relocate (Fiber *f)
 move to a different fiber, at same abscissa
 
void relocate (Fiber *f, real a)
 move to a different fiber, at given position
 
void moveToEnd (FiberEnd end)
 move to the specified FiberEnd (CENTER is also a valid argument)
 
void moveTo (real abs)
 move along the Fiber to specified abscissa, or detach
 
void moveBy (real dabs)
 move along the Fiber by the abscissa offset dabs, or detach
 
bool attached () const
 true if attached
 
Fiberfiber () const
 Fiber to which this is attached, or zero if not attached.
 
Vector pos () const
 position in space
 
Vector dir () const
 direction of Fiber obtained by normalization
 
Vector dirFiber () const
 the direction of the Fiber at the point of attachment
 
real abscissa () const
 the abscissa, from the origin of the Fiber
 
real abscissaFrom (FiberEnd from) const
 abscissa, counted from the specified FiberEnd (in reversed direction for the PLUS_END)
 
FiberEnd nearestEnd () const
 nearest end to the point specified by the abscissa from the origin
 
bool withinP () const
 true if abscissa is below abscissaP
 
bool withinM () const
 true if abscissa is above abscissaM
 
bool within () const
 true if abscissa is within the fiber boundaries
 
const PointInterpolatedinterpolation () const
 the interpolation
 
void updateBinder ()
 set a valid PointInterpolated
 
virtual void attach (FiberBinder &fb)
 attach at position fb
 
virtual void detach ()
 detach from Fiber (can be changed in derived Classes to allow updating)
 
void checkFiberRange ()
 check the abscissa against the edges of the fiber, calling handleOutOfRange() if necessary.
 
virtual void handleOutOfRange (FiberEnd)
 called when the Hand abscissa lies outside the range of the Fiber
 
FiberBindernext () const
 a static_cast<> of Node::next()
 
FiberBinderprev () const
 a static_cast<> of Node::prev()
 
virtual void read (InputWrapper &, Simul &)
 read More...
 
virtual void write (OutputWrapper &) const
 write
 
void checkAbscissa () const
 check that fbAbs is within Fiber::abscissaM() and Fiber::abscissaP()
 
int bad () const
 check validity of the interpolation (debuging purposes)
 
- Public Member Functions inherited from Node
 Node ()
 constructor set as unlinked
 
virtual ~Node ()
 destructor More...
 
bool linked () const
 true if Node is linked
 
Nodenext () const
 the next Node in the list, or zero if this is last
 
Nodeprev () const
 the previous Node in the list, or zero if this is first
 
NodeListlist () const
 the list where the object is linked, or zero
 
ObjectSetobjset () const
 return associated ObjectSet
 

Protected Attributes

FiberfbFiber
 the Fiber on which it is attached, or 0 if not attached
 
real fbAbs
 the abscissa from the Fiber origin
 
- Protected Attributes inherited from Node
NodenNext
 the next Node in the list
 
NodenPrev
 the previous Node in the list
 

Member Function Documentation

void read ( InputWrapper in,
Simul sim 
)
virtual
Todo:
: we should allow binder to refer to any Mecable

Reimplemented in Hand.